zhouqijie

游戏树以及零和博弈

棋类游戏跟的AI设计,跟大多数实时游戏大相径庭。首先,这类游戏需要两个玩家轮流操作,其次,这类游戏是对抗性的。

一种方法是:使用名为游戏树的结构。在游戏树中,根节点表示游戏当前的棋盘状态。每条边代表一次棋子移动,这些边会引向新的棋盘状态。

要生成完整的游戏树。需要将根节点设置为当前游戏状态,并为每一个可能的第一步创建子节点。然后,针对第一级中每个节点重复此过程,直到所有的移动步骤都试过。

根据潜在的移动数量,游戏树的大小会呈指数级增长。(这代表棋盘越大,完整游戏树的节点越多)



极大极小算法

极大极小算法可通过评估双人游戏树来确定当前玩家的最佳移动。

极大极小算法假定每个玩家都会做出对自己最有利的选择。



处理不完整的游戏树

生成完整的游戏树并不总是可行的。值得庆幸的是,可以通过修改极小极大算法代码来解释不完整的游戏树。

AI需要限制其游戏树的深度,这意味着代码会将一些节点视为叶子节点,即使这些节点并非游戏的终止状态。



α-β剪枝算法

α-β剪枝算法是极小极大算法的一种优化形式,该优化形式通常能够减少所评估的节点数量。实际上,这意味着在不增加计算时间的基础上,增加所探索的最大深度。

(END)